package com.vision.sales.cl.data;


import java.util.Date;

import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor.Path;
import com.sencha.gxt.core.client.ValueProvider;
import com.sencha.gxt.data.shared.LabelProvider;
import com.sencha.gxt.data.shared.ModelKeyProvider;
import com.sencha.gxt.data.shared.PropertyAccess;
import com.vision.core.cm.db.data.Company;
import com.vision.sales.cm.data.TransactionStatus;
import com.vision.sales.cm.db.data.Collection;
import com.vision.sales.cm.db.data.Customer;

/**
 * 
 * @author Mark
 *
 */
public interface CollectionProperties extends PropertyAccess<Collection> {
	
	public static final CollectionProperties INSTANCE = GWT.create(CollectionProperties.class);
	
	@Path("id")
	ModelKeyProvider<Collection> key();
	
	@Path("refNo")
	LabelProvider<Collection> nameLabel();
	
	ValueProvider<Collection, Company> company();
	ValueProvider<Collection, Long> id();
	ValueProvider<Collection, String> refNo();
	
	ValueProvider<Collection, Customer> customer();
	@Path("customer.name")
	ValueProvider<Collection, String> customerName();
	@Path("customer.code")
	ValueProvider<Collection, String> customerCode();
	
	ValueProvider<Collection, Date> date();
	
	ValueProvider<Collection, String> checkNo();
	ValueProvider<Collection, Date> checkDate();
	ValueProvider<Collection, String> cashAccount();
	
	ValueProvider<Collection, Double> grossSales();
	ValueProvider<Collection, Double> overruns();
	ValueProvider<Collection, Double> discounts();
	ValueProvider<Collection, Double> rejects();
	ValueProvider<Collection, Double> returns();
	
	ValueProvider<Collection, Double> subtotal();
	ValueProvider<Collection, Double> tax();
	ValueProvider<Collection, Double> netAmount();
	
	ValueProvider<Collection, TransactionStatus> status();
	
}